草庐IT

php - 获取 facebook id 和返回名称

全部标签

ruby - 如何在 Ruby 中获取数组的最后一个元素?

例子:a=[1,3,4,5]b=[2,3,1,5,6]如何获取数组a中的最后一个值5或数组b中的最后一个值6而无需使用a[3]和b[4]? 最佳答案 使用-1索引(负索引从数组末尾倒数):a[-1]#=>5b[-1]#=>6或Array#last方法:a.last#=>5b.last#=>6 关于ruby-如何在Ruby中获取数组的最后一个元素?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

ruby - Ruby 如何返回两个值?

每当我交换数组中的值时,我都会确保将其中一个值存储在引用变量中。但是我发现Ruby可以返回两个值,也可以自动交换两个值。例如,array=[1,3,5,6,7]array[0],array[1]=array[1],array[0]#=>[3,1]我想知道Ruby是如何做到这一点的。 最佳答案 与其他语言不同,Ruby中任何方法调用的返回值始终是一个对象。这是可能的,因为就像Ruby中的所有内容一样,nil本身就是一个对象。您将看到三种基本模式。不返回特定值:defnothingendnothing#=>nil返回一个奇异值:defs

ruby - 获取目录中的文件夹列表

如何使用ruby​​获取某个目录中存在的文件夹列表?Dir.entries()看起来很接近,但我不知道如何仅限于文件夹。 最佳答案 我发现它更有用且易于使用:Dir.chdir('/destination_directory')Dir.glob('*').select{|f|File.directory?f}它获取当前目录中的所有文件夹,不包括.和...要递归文件夹,只需使用**代替*。Dir.glob行也可以作为block传递给Dir.chdir:Dir.chdir('/destinationdirectory')doDir.gl

Ruby 获取对象键作为数组

如果我有这样一个对象,我是Ruby的新手{"apple"=>"fruit","carrot"=>"vegetable"}我怎样才能返回一个只有键的数组?["apple","carrot"] 最佳答案 hash={"apple"=>"fruit","carrot"=>"vegetable"}array=hash.keys#=>["apple","carrot"]就这么简单 关于Ruby获取对象键作为数组,我们在StackOverflow上找到一个类似的问题: h

ruby-on-rails - 如果字符串为空则返回一些默认值

我经常需要检查某些值是否为空,然后像这样写“没有数据”:@user.address.blank??"Wedon'tknowuser'saddress":@user.address当我们有大约20-30个字段需要以这种方式处理时,它就变得丑陋了。我所做的是使用或方法扩展String类classStringdefor(what)self.strip.blank??what:selfendend@user.address.or("Wedon'tknowuser'saddress")现在看起来好多了。但它仍然是原始和粗糙的如何更好地解决我的问题。也许扩展ActiveSupport类或使用辅助方

ruby - 如何根据名称动态调用方法?

这个问题在这里已经有了答案:CallingaMethodFromaStringWiththeMethod'sNameinRuby(4个答案)关闭3年前。当名称包含在字符串变量中时,如何动态调用方法?例如:classMyClassdeffoo;enddefbar;endendobj=MyClass.newstr=get_data_from_user#e.g.`gets`,`params`,DBaccess,etc.str#=>"foo"#somehowcall`foo`on`obj`usingthevaluein`str`.我该怎么做?这样做有安全风险吗?

ruby - 获取类的实例方法列表

我有一个类:classTestClassdefmethod1enddefmethod2enddefmethod3endend如何获取此类中的方法列表(method1、method2、method3)? 最佳答案 TestClass.methods(false)仅获取属于该类的方法。TestClass.instance_methods(假)将返回给定示例中的方法(因为它们是TestClass的实例方法)。 关于ruby-获取类的实例方法列表,我们在StackOverflow上找到一个类似的

ruby - 返回 Ruby 正则表达式的第一个匹配项

我正在寻找一种在Ruby中对字符串执行正则表达式匹配并使其在第一个匹配项时短路的方法。我正在处理的字符串很长,从标准方式(match方法)来看,它会处理整个字符串,收集每个匹配项,并返回一个包含所有匹配项的MatchData对象。match=string.match(/regex/)[0].to_s 最佳答案 你可以试试String#[](如variableName[/regularexpression/])。这是IRB的示例输出:names="erikkallejohananderserikkallejohananders"#=>

ruby - 方法名称末尾的 "!"和 "?"的用途是什么?

有时我看到Ruby中的方法有“?”和”!”在它们的末尾,例如:name="sample_string"name.reversename.reverse!name.is_binary_data?我想知道他们的目的是什么?它们只是语法糖衣吗? 最佳答案 为了可读性,这只是“糖衣”,但它们确实具有共同的含义:以!结尾的方法执行一些永久性或潜在危险的更改;例如:Enumerable#sort返回对象的排序版本,而Enumerable#sort!将其原地排序。在Rails中,如果保存失败,ActiveRecord::Base#save返回fa

ruby - 获取给定名称的实例变量的值

一般来说,我如何才能获得对名称在字符串中的对象的引用?更具体地说,我有一个参数名称列表(成员变量-动态构建,所以我不能直接引用它们)。每个参数都是一个对象,也有一个from_s方法。我想做类似下面的事情(这当然行不通......):define_method(:from_s)do|arg|@ordered_parameter_names.eachdo|param|instance_eval"field_ref=@#{param}"field_ref.from_s(param)endend 最佳答案 实现这一点的最惯用的方法是:som